## Git回滚代码到某个commit
回退命令：

$ git reset --hard HEAD^ 回退到上个版本
$ git reset --hard HEAD~3 回退到前3次提交之前，以此类推，回退到n次提交之前
$ git reset --hard commit_id 退到/进到 指定commit的sha码

强推到远程：

$ git push origin HEAD --force

## 合并commit
一、界面方式
1、进入commit记录编辑界面
git rebase -i [分支名或commit的hash值]
这时 git 会打开编辑器，你会看到当前分支上的最新commit记录，以及一些指引提示

2、修改对每个commit记录需要持行的操作
界面上第一列是commit的持行命令，命令含义如下：
• pick：意思是要会执行这个 commit
• squash：将这一行的 commit 与上一个 commit 进行合并
• fixup：与 squash 相同，只是不会保留这行 commit 的提交 message 信息

3、保存退出
:wq

退出后就会发现log记录发生了改变

4、撤销修改
git rebase --abort

 

二、命令方式
1、自动标记这一次的 commit 为上一个 commit 的 fix
$ git commit --fixup <commit>

2、自动组织合并两个 commit
$ git rebase -i --autosquash

撤销
git rebase --abort